#include "widget.h"
#include "ui_widget.h"

#include <QDebug>
#include <QTabWidget>
#include <QVBoxLayout>
#include <QLabel>
#include <QMap>
#include <QStringList>

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);

    qDebug() << ui->tabWidget->count();


    QTabWidget* tab = new QTabWidget(this);
    tab->resize(300, 280);
    tab->move(400, 50);

    QWidget* w1 = new QWidget;
    QVBoxLayout* v1 = new QVBoxLayout(w1);
    v1->setAlignment(Qt::AlignTop);  // 修改布局方式
    v1->addWidget(new QLabel("0:7输比赛，666"));
    v1->addWidget(new QLabel("明天踢沙特，猜猜输几个！"));

    tab->addTab(w1, "足球");

    QWidget* w2 = new QWidget;
    QVBoxLayout* v2 = new QVBoxLayout(w2);
    v2->addWidget(new QLabel("篮球也不咋地"));
    tab->addTab(w2, "篮球");

    QWidget* w3 = new QWidget;
    QVBoxLayout* v3 = new QVBoxLayout(w3);
    v3->addWidget(new QLabel("乒乓球给力！"));
    tab->addTab(w3, "乒乓球");

    // 自动生成
    QMap<QString, QStringList> m = {{"奇趣事", {"奇趣事111", "奇趣事222", "奇趣事333"}},
                                    {"潮科技", {"潮科技111", "潮科技222", "潮科技333"}},
                                    {"会生活", {"会生活111", "会生活222", "会生活333"}}};
    QTabWidget* tabNews = new QTabWidget(this);
    tabNews->resize(300, 280);
    tabNews->move(750, 50);
    for (auto it = m.begin(); it != m.end(); it++)
    {
        QWidget* widget = new QWidget;
        QVBoxLayout* vbox = new QVBoxLayout(widget);
        vbox->setAlignment(Qt::AlignTop);
        for (auto item : it.value())
        {
            vbox->addWidget(new QLabel(item));
        }
        tabNews->addTab(widget, it.key());
    }

}

Widget::~Widget()
{
    delete ui;
}

void Widget::on_tabWidget_currentChanged(int index)
{
//    qDebug() << "currentChanged" << index;
}

void Widget::on_tabWidget_tabBarClicked(int index)
{
//    qDebug() << "tabBarClicked" << index;
}

void Widget::on_tabWidget_tabBarDoubleClicked(int index)
{
//    qDebug() << "tabBarDoubleClicked" << index;
}

// 点击关闭按钮时触发该信号
void Widget::on_tabWidget_tabCloseRequested(int index)
{
    qDebug() << index;
    if(ui->tabWidget->count() != 1)
    {
        ui->tabWidget->removeTab(index);
    }
}
